# -*- coding: utf-8 -*-

class Mymeta(type):
    # 但凡继承了type的类才能称之为自定义的元类,否则就是只是一个普通的类
    def __init__(self, class_name, class_bases, class_dic):
        if class_name.islower():
            raise TypeError('类名必须使用驼峰体')
        doc = class_dic.get('__doc__')
        if doc is None or len(doc) == 0 or len(doc.strip('\n ')) == 0:
            raise TypeError('类体必须有文档注释,且文档注释不能为空')


# 这里必须写object ，默认的type元类会做，自定义元类的要自己写
class Teacher(metaclass=Mymeta):
    '''
    必须要有文档注释
    '''
    pass
print(Teacher.__dict__)

print(Mymeta('Student', (object,), {'__doc__': '文档注释'}).__dict__)